#include <iostream>
#include <vector>
#include <string>

using namespace std;

void calcZ (vector<int>& z,const string& s){
	z.resize(s.length());
	int len = s.length();
    z[0] = len;
    int l = 0, r = 0;
	int j;
    for (int i = 1; i < len; i++)
		if (i > r){
			for (j = 0; (s[i + j] == s[j]) && ((j + i) < len); j++);
            z[i] = j;
            l = i;
			r = i + j - 1;
		}
        else
            if (z[i - l] < r - i + 1)
			    z[i] = z[i - l];
            else {
                for (j = 1; (s[r + j] == s[r - i + j]) && ((j + r) < len); j++);
					z[i] = r - i + j;
                    l = i;
                    r = r + j - 1;
            }
}

void findString(const string& s,const string& t) {
	string p = s + t;
	vector<int> z;
	calcZ(z,p);
	for(int i = s.length(); i < p.length(); ++i)
		if (z[i] >= s.length())
			cout<<i - s.length()<<' ';
	cout<<endl;
}

	
int main() {
	string s,t;
	getline(cin,t);
	getline(cin,s);
	findString(s,t);
	system("pause");
	return 0;
}